]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspaceThumbnails: Handle reordering of workspaces
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 9 Jul 2019 12:26:12 +0000 (14:26 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 9 Jul 2019 12:41:35 +0000 (14:41 +0200)
MetaWorkspaceManager gained the ability to reorder workspaces, so make
sure to pick up the new order when that happens.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/620

js/ui/workspaceThumbnail.js

index eaf2f69477ab5e2ff7bab9a44b23ab2aca69f823..9edddfa24921f58faf01316dd3a79b77949ff346 100644 (file)
@@ -865,6 +865,13 @@ class ThumbnailsBox extends St.Widget {
         this._nWorkspacesNotifyId =
             workspaceManager.connect('notify::n-workspaces',
                                      this._workspacesChanged.bind(this));
+        this._workspacesReorderedId =
+            workspaceManager.connect('workspaces-reordered', () => {
+                this._thumbnails.sort((a, b) => {
+                    return a.metaWorkspace.index() - b.metaWorkspace.index();
+                });
+                this.queue_relayout();
+            });
         this._syncStackingId =
             Main.overview.connect('windows-restacked',
                                   this._syncStacking.bind(this));
@@ -896,6 +903,11 @@ class ThumbnailsBox extends St.Widget {
             workspaceManager.disconnect(this._nWorkspacesNotifyId);
             this._nWorkspacesNotifyId = 0;
         }
+        if (this._workspacesReorderedId > 0) {
+            let workspaceManager = global.workspace_manager;
+            workspaceManager.disconnect(this._workspacesReorderedId);
+            this._workspacesReorderedId = 0;
+        }
 
         if (this._syncStackingId > 0) {
             Main.overview.disconnect(this._syncStackingId);